package com.zkthink.ceres.pay.wechat.v3.entity.result.applyments;

import com.alibaba.fastjson.annotation.JSONField;
import com.zkthink.ceres.pay.wechat.v3.entity.request.applyments.AccountValidation;
import com.zkthink.ceres.pay.wechat.v3.entity.request.applyments.AuditDetail;
import com.zkthink.ceres.pay.wechat.v3.entity.result.BasePayResult;
import lombok.*;
import lombok.experimental.Accessors;

/**
 * <p>
 *   合并下单结果
 * </p>
 *
 * @author vivi.huang
 * @since 2020/5/17
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Builder(builderMethodName = "newBuilder")
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class QueryApplymentsResult extends BasePayResult {

    private static final long serialVersionUID = 1960459269579244358L;


    /**
     * 申请状态	applyment_state	string(32)	否	枚举值：
     * CHECKING：资料校验中
     * ACCOUNT_NEED_VERIFY：待账户验证
     * AUDITING：审核中
     * REJECTED：已驳回
     * NEED_SIGN：待签约
     * FINISH：完成
     * FROZEN：已冻结
     * 示例值：FINISH
     */
    @JSONField(name = "applyment_state")
    private String applymentState;

    /**
     * 申请状态描述	applyment_state_desc	string(32)	否	申请状态描述
     * 示例值：“审核中”
     */
    @JSONField(name = "applyment_state_desc")
    private String applymentStateDesc;

    /**
     * 签约链接	sign_url	string(256)	否	1、当申请状态为NEED_SIGN时才返回。
     * 2、建议将链接转为二维码展示，需让申请单-管理者用微信扫码打开，完成签约。
     * 示例值：https://pay.weixin.qq.com/public/apply4ec_sign/s?applymentId=2000002126198476&sign=b207b673049a32c858f3aabd7d27c7ec
     */
    @JSONField(name = "sign_url")
    private String signUrl;

    /**
     * 电商平台二级商户号	sub_mchid	string(32)	否	当申请状态为NEED_SIGN或FINISH时才返回。
     * 示例值：1542488631
     */
    @JSONField(name = "sub_mchid")
    private String subMchid;

    /**
     * 汇款账户验证信息	account_validation	object	否	当申请状态为ACCOUNT_NEED_VERIFY 时有返回，可根据指引汇款，完成账户验证。
     */
    @JSONField(name = "account_validation")
    private AccountValidation accountValidation;

    /**
     * 驳回原因详情	audit_detail	array	否	各项资料的审核情况。当申请状态为REJECTED或 FROZEN时才返回。
     */
    @JSONField(name = "audit_detail")
    private AuditDetail auditDetail;

    /**
     * 法人验证链接	legal_validation_url	string(256)	否	1、当申请状态为
     * ACCOUNT_NEED_VERIFY，且通过系统校验的申请单，将返回链接。
     * 2、建议将链接转为二维码展示，让商户法人用微信扫码打开，完成账户验证。
     * 示例值： https://pay.weixin.qq.com/public/apply4ec_sign/s?applymentId=2000002126198476&sign=b207b673049a32c858f3aabd7d27c7ec
     */
    @JSONField(name = "legal_validation_url")
    private String legalValidationUrl;

    /**
     * 业务申请编号	out_request_no	string(124)	是	提交接口填写的业务申请编号。
     * 示例值：APPLYMENT_00000000001
     */
    @JSONField(name = "out_request_no")
    private String outRequestNo;

    /**
     * 微信支付申请单号	applyment_id	uint64	否	微信支付分配的申请单号。
     * 示例值：2000002124775691
     */
    @JSONField(name = "applyment_id")
    private String applymentId;




}